package com.yang.frost.blueberry.quartz.service;

import com.yang.frost.blueberry.quartz.entity.form.JobForm;
import com.yang.frost.blueberry.util.ApiResult;
import org.quartz.SchedulerException;

import java.util.Map;

/**
 * @author 10296
 * @date 2021/1/20
 * @Description: Job Service
 */
public interface JobService {
    /**
     * 添加并启动定时任务
     *
     * @param jobForm 表单参数
     * @throws Exception 异常信息
     */
    void addJob(JobForm jobForm) throws Exception;

    /**
     * 删除定时任务
     *
     * @param jobForm 表单参数
     * @throws Exception 异常
     */
    void deleteJob(JobForm jobForm) throws Exception;

    /**
     * 暂停定时任务
     *
     * @param jobForm 表单参数
     * @throws SchedulerException 异常
     */
    void pauseJob(JobForm jobForm) throws SchedulerException;

    /**
     * 恢复定时任务
     *
     * @param jobForm 表单参数
     * @throws SchedulerException 异常
     */
    void resumeJob(JobForm jobForm) throws SchedulerException;

    /**
     * 重新配置定时任务
     *
     * @param jobForm 表单参数
     * @throws Exception 异常
     */
    void cronJob(JobForm jobForm) throws Exception;

    /**
     * 查询定时任务列表
     *
     * @param paramsMap 参数
     * @return 定时任务
     */
    ApiResult list(Map<String, Object> paramsMap);


}
